package lanqiao;
/**
 * 山【第十三届】【省赛】【B组】
 * 这天小明正在学数数。 他突然发现有些正整数的形状像一座“山”，比如123565321、145541，
 * 它们左右对称（回文）且数位上的数字先单调不减，后单调不增。
 * 小明数了很久也没有数完，他想让你告诉他在区间[2022, 2022222022]中有 多少个数的形状像一座“山”。
 * 答案：3138
 */
public class Prev_13B {
    // 大概需要等1min..
    public static void main(String[] args) {
        int count = 0;
        for (int i = 2022; i <= 2022222022; i++) {
            String s = Integer.toString(i);
            if(isMirror(s) && isMontain(s)){
                count ++;
            }
        }
        System.out.println(count);
    }

    //判断是否回文
    private static boolean isMirror(String s) {
        String s2 = new StringBuilder(s).reverse().toString();
        return s.equals(s2);
    }

    //判断是否为山
    private static boolean isMontain(String s) {
        //123321
        //12321
        for (int i = 1; i <= s.length() / 2; i++) {
            //每个数字和前一个比
            char cur = s.charAt(i);
            char prev = s.charAt(i-1);
            if((int) cur < (int) prev){
                return false;
            }
        }
        return true;
    }
}
